package com.ruoyi.mes.service.impl;

import java.util.List;

import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.mes.domain.ProBomMaterial;
import com.ruoyi.mes.domain.ProCraftProcess;
import com.ruoyi.mes.mapper.ProDesignMapper;
import com.ruoyi.mes.utils.CodeUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.mes.mapper.ProCraftMapper;
import com.ruoyi.mes.domain.ProCraft;
import com.ruoyi.mes.service.IProCraftService;
import com.ruoyi.mes.mapper.ProCraftProcessMapper;

/**
 * 工艺管理Service业务层处理
 * 
 * @author CFL
 * @date 2024-04-28
 */
@Service
public class ProCraftServiceImpl implements IProCraftService 
{
    @Autowired
    private ProCraftMapper proCraftMapper;

    @Autowired
    private ProDesignMapper proDesignMapper;

    @Autowired
    private ProCraftProcessMapper proCraftProcessMapper;
    /**
     * 查询工艺管理
     * 
     * @param id 工艺管理主键
     * @return 工艺管理
     */
    @Override
    public ProCraft selectProCraftById(Long id)
    {
        return proCraftMapper.selectProCraftById(id);
    }

    /**
     * 查询工艺工序表
     *
     * @param id 工艺管理主键
     * @return 工艺管理
     */
    @Override
    public List<ProCraftProcess> selectProCraftProcess2(Long id)
    {
        System.out.println(id+"亻尔女子end222:"+proCraftProcessMapper.selectProCraftProcess2(id));
        return proCraftProcessMapper.selectProCraftProcess2(id);
    }

    /**
     * 查询工艺管理列表
     * 
     * @param proCraft 工艺管理
     * @return 工艺管理
     */
    @Override
    public List<ProCraft> selectProCraftList(ProCraft proCraft)
    {
        return proCraftMapper.selectProCraftList(proCraft);
    }

    /**
     * 新增工艺管理
     * 
     * @param proCraft 工艺管理
     * @return 结果
     */
    @Override
    public int insertProCraft(ProCraft proCraft)
    {
        BaseController username = new BaseController();
        //用户名
        String userName = username.getUsername();
        //工艺编号
        String craftSn = CodeUtils.CraftCodeCreat();
        proCraft.setCreatedBy(userName);
        proCraft.setCreatedTime(DateUtils.getNowDate());
        proCraft.setCftSn(craftSn);
        proCraftMapper.insertProCraft(proCraft);
        //在工艺新增完后，再更新产品设计表里的cra_id字段值，，否则cra_id为空
        proDesignMapper.updateProDesignCraftId(proCraft);
        //在工艺工序表中添加对应数据
        proCraftProcessMapper.insertProCraftProcess2(proCraft);
        return 1;
    }

    /**
     * 修改工艺管理
     * 
     * @param proCraft 工艺管理
     * @return 结果
     */
    @Override
    public int updateProCraft(ProCraft proCraft)
    {
        BaseController username = new BaseController();
        //用户名
        String userName = username.getUsername();
        proCraft.setCreatedBy(userName);
        proCraft.setCreatedTime(DateUtils.getNowDate());
        proCraftMapper.updateProCraft(proCraft);
        //先删后增，也叫修改
        proCraftProcessMapper.deleteProCraftProcess2(proCraft);
        proCraftProcessMapper.insertProCraftProcess2(proCraft);
        return 1;
    }

    /**
     * 批量删除工艺管理
     * 
     * @param ids 需要删除的工艺管理主键
     * @return 结果
     */
    @Override
    public int deleteProCraftByIds(Long[] ids)
    {
        return proCraftMapper.deleteProCraftByIds(ids);
    }

    /**
     * 删除工艺管理信息
     * 
     * @param id 工艺管理主键
     * @return 结果
     */
    @Override
    public int deleteProCraftById(Long id)
    {
        return proCraftMapper.deleteProCraftById(id);
    }
}
